#ifndef ATLAS_H
#define ATLAS_H

class Atlas;

#include "QGraphicsScene"

#include "Component/component.h"
#include "Atlas/canvas.h"
#include "Atlas/atlasinspector.h"

class Atlas :   public Component{
    Q_OBJECT

    /********************************************
     *              Public
     ********************************************/
    public:

        /********************************************
         *              Constructors
         ********************************************/

            Atlas();
            Atlas(int width, int height);

        /********************************************
         *              Methods
         ********************************************/

            /********************************************
             *              Get
             ********************************************/

                int Width();
                int Height();

            /********************************************
             *              Virtual
             ********************************************/

                void Save(xml::Element &element);
                void Load(xml::Element &element);

        /********************************************
         *              Properties
         ********************************************/

            QGraphicsScene  *       m_Scene;
            vector<AtlasImage * >   m_Images;

    /*******************************************
     *              Private
     ********************************************/
    private :

        /********************************************
         *              Methods
         ********************************************/

             void ExportTexture();
             void ExportXML();

             /*! @brief  Crée la liste des images chargés dans le programme    */
             vector<QString> CreateImageList();


             void AddImage(QString filepath);

         /********************************************
          *              Virtual
          ********************************************/

             void DoubleClicked();
             void Clicked();

        /********************************************
         *              Properties
         ********************************************/

             int            m_Width;
             int            m_Height;

            Canvas          *       m_Canvas;

        /*******************************************
         *              Signals
         ********************************************/
        signals :

        void UpdateCentralWidget(QWidget *);
        void SendCanvas(Atlas * );
        void SendInspector(QWidget *);






};

#endif // ATLAS_H
